<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/sys/role/";  //应用的地址名
String addActionName = basePath+"SysRole_add.action?op=savejs";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>系统角色表添加</title>
<script type="text/javascript">
<!--
           $(function(){
              $('#roleFrame').layout({border:false});
               //初始化工作，因为远程载入该界面时无法通过在标签中进行设置相应的验证属性等信息，必须要在这里进行初始化
               //$('#addBtn').linkbutton();
               $('#vcName').validatebox({
                   required:'true',
                   missingMessage:'必须输入名称',
                   validType:'length[1,20]&specialChar'
               });
	           $('#vcSeq').validatebox({
	              required:'true',
	              missingMessage:'必须输入数字排序号',
	              validType:'intNumber[0,9999]'
	           });
               $('#vcMemo').validatebox({
                   validType:'length[1,100]&specialChar'
               });
               
               if($('#vcPublic')){
            	   $('#vcPublic').combobox({
                	   panelHeight:50,
                	   panelWidth:40
                	});
               }
               
	           //点击添加按钮操作
			   $('#addBtn').click(function(){
                  $('#addForm').submit();
	            });
	            //表单验证及提交处理操作
	           $('#addForm').form({
			        url:'<%=addActionName%>',
			        onSubmit: function(){
                         setSelectedMenus();
			             if($(this).form('validate')){
			                 $.util.showLoading();
			                 $('#operateWindow').window('close');
                            return true;
			             }else{
			                return false;
			             }
			        },			        
			        success:function(data){
			            $.util.removeLoading();
			            returnOptMsg(data);
			        }
				});
				
				
			$('#menuTable').tree({
			    checkbox: true, 
				url:'<%=path%>/sys/role/SysRole.action?op=searchAllMenuJsonTree&parId=<s:property value="menuId"/>',
				//打开节点时的操作
			    onClick:function (node){ 
			                  //为叶子节点时打开菜单功能选项
			                  if($('#menuTable').tree('isLeaf', node.target)){
				                  $("#menuOpts").load("<%=path%>/sys/role/SysRole.action?op=openOptListPage", {menuId: node.id,menuText: node.text}, function(){
								    setSelectedOpt(node.id);  //加载该菜单的已选功能项
								  });
			                   }
			                  else{
			                	  $("#menuOpts").empty();
			                	  $('#menuTable').tree('toggle',$('#menuTable').tree('getSelected').target);
			                  }
			            },
			    //加载数据失败的处理        
			    onLoadError: function () {    
	                $.messager.alert('消息提示','菜单树加载失败，请稍后再试！','error'); 
	            }                     
		      });   
		    
      });  
      
      //将用户点击菜单后选取的操作功能进行保存
      //功能实现：根据用户选择的操作功能，将这些功能以逗号分隔形成字符串存入id为菜单id的hidden表单中
      function getSelectedOpt(menuid){
         var opts = "";
         $(':checkbox:checked[name="opt'+menuid+'"]').each(function(){   
		     opts = opts+$(this).val()+",";      
          });
         opts = opts.substring(0,opts.length-1);
         //判断以菜单id为id的表单元素是否存在，不存在就建立该元素，并将opts的值赋给该元素
         if($('#chooseOpt'+menuid).html()==null){
             $('#south').append('<input type="hidden" id="chooseOpt'+menuid+'" name="chooseOpt'+menuid+'" value="'+opts+'"/>');
         }else{
             $('#chooseOpt'+menuid).val(opts);
         }
      }
      
      //打开页面后将用户原有选中的功能项进行选中
      //功能实现：获取id为菜单id的hidden表单值，与打开的功能页面中的功能项的value进行进行比较，如果value存在于hidden表单值中，将该功能项的状态设置为选中
      function setSelectedOpt(menuid){
          if($('#chooseOpt'+menuid).html()!=null){
              var opts = $('#chooseOpt'+menuid).val();
	          $(':checkbox[name="opt'+menuid+'"]').each(function(){ 
			       if(opts.indexOf($(this).val())>=0)
			         $(this).attr("checked", true);  
	          });          
          }
      }
      
      //获取选中的节点并放入ID为menuIds的隐藏域中
      function setSelectedMenus(){
            var nodes = $('#menuTable').tree('getChecked');
            var menuIds = "";
            for(var i=0;i<nodes.length;i++){
                menuIds = menuIds +  nodes[i].id + ",";
            }
            menuIds = menuIds.substring(0,menuIds.length-1);
            $('#menuIds').val(menuIds);
      }
      
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" style="">
<div id="roleFrame" class="easyui-layout" style="width:100%;height:100%;" fit="true">
  <div  region="west" split="true" style="width:220px;"><ul id="menuTable"></ul></div>
  <div region="south" style="height:55%; overflow:hidden;"  border="false" >
  <form id="addForm" method="post" align="center">
     <input type="hidden" name="po.vcType" value="<s:property value="menuId"/>">
     <table align="left"  width="100%" id="south" class="tb_add_th">
		<tr><th nowrap>角色名称:</th><td nowrap><input type="text" id="vcName" name="po.vcName" style="width:75px"><font color="red">*</font></td>
		<s:if test="#request.isAdmin!=null">
		<th nowrap>是否公开:</th><td nowrap><s:select id="vcPublic"  name="po.vcPublic" style="width:40px"  list="#{0:'否',1:'是'}"></s:select>
		</td>
		</s:if>
		<th nowrap>角色描述:</th><td><input type="text" id="vcMemo" name="po.vcMemo"  style="width:85px"><input type="hidden" id="menuIds" name="menuIds"></td>
		<th nowrap>排序号:</th><td nowrap><input type="text" id="vcSeq" name="po.vcSeq" style="width:25px" value="<s:property value="#request.seq"/>"><font color="red">*</font></td>
		</tr>	
			
	</table>
   </form>
  </div>
  <div id="menuOpts" region="center"  style="overflow:hidden;"></div>
</div>
</body>
</html>


